"""
自动化测试模型介绍及对比分析：
	1.介绍：
		线性测试：
			1.概念：通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。
				(操作，重复操作，数据)都混合在一起。
			2.优点：每个脚本相对独立，且不产生其他依赖和调用。
			3.缺点：开发成本高，用例之间存在重复的操作。比如重复的用户登录和退出。
					维护成本高，由于重复的操作，当重复的操作发送改变时，则需要逐一进行脚本的修改。

		模块化驱动测试：
			1.概念：将重复的操作独立成公共模块，当用例执行过程中需要用到这一模块时则被调用。
				操作+ (重复操作,数据)混合在一起。
			2.优点：由于最大限度消除了重复，从而提高了开发效率和提高测试用例的可维护性。
			3.缺点：虽然模块化的步骤相同，但是测试数据不同。比如说重复的登录模块，如果登录用户不同，依旧要重复编写登录脚本。
			4.实例：对登录和退出模块进行封装。

		数据驱动测试：
			1.概念：它将测试中的测试数据和操作分离，数据存放在另外一个文件中单独维护。
					通过数据的改变从而驱动自动化测试的执行，最终引起测试结果的改变。
					操作+ 重复操作 + 数据分开。
			2.优点：通过这种方式，将数据和重复操作分开，可以快速增加相似测试，完成不同数据情况下的测试。
			3.缺点：暂无。
			4.实例：从excel 表格读取用户名密码，登录邮箱。

		关键字驱动：
			1.概念：关键字驱动测试也被成为"表格驱动测试"或"操作名测试"，它是一种软件自动化测试的方法论。
				它将自动化测试的创建过程分为两个不同的阶段：设计阶段和实现阶段。
				1.1.设计阶段的例子：
					Object Action Data
					Textfield(username) Enter text <username>
			2.实现阶段依赖于具体使用的测试工具，通常自动化测试引擎会提供设计阶段定义的关键字，类似于"check"或
				"Enter"。测试人员基于这些关键字来编写测试案例。测试案例执行时会有一个驱动程序来读取这些关键字,并执行相应的代码.
			3.优点：在一个较长软件维护周期内，显著减少维护工作量;
					关键字可以跨越多个测试案例进行复用;
					让员工集中精力在自己所擅长的地方，如：
						测试案例的实现需要丰富的测试工具、编程-而不需要太多的专业领域知识；
			4.缺点：创建自动化测试需要更长的时间(相比于手工测试和录制-回放技术);
					需要更长的学习、掌握周期；

"""
